package java_DesignPattern.BehavioralPattern.InterpreterPattern;

public class Test {
    public static void main(String[] args) {
        // 创建上下文对象
        Context context = new Context();

        // 创建变量对象
        Variable a = new Variable("a");
        Variable b = new Variable("b");
        Variable c = new Variable("c");
        Variable d = new Variable("d");

        // 添加变量值
        context.add("a", 1);
        context.add("b", 2);
        context.add("c", 3);
        context.add("d", 4);

        // 创建表达式对象
        AbstractExpression expression = new Add(a, new Minus(b, new Add(c, d)));

        // 解释表达式
        int result = expression.interpret(context);
        // 输出表达式字符串表示
        System.out.println(expression.toString());

        // 输出结果
        System.out.println(result);
    }
}
